package com.caigou.mapper.cms;

import com.caigou.bean.cms.entity.Channel;
import com.caigou.bean.cms.param.ChannelParam;
import com.caigou.bean.vo.ChannelTdkVO;
import com.caigou.pojo.*;
import com.caigou.util.Result;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository("ChannelMapper")
public interface ChannelMapper {
    List<ChannelConfigList> loadChannelConfigList(@Param("channelId") String channelId);

    String loadChannelConfigInfo(@Param("channelId") String channelId);

    int updateChannelConfig(ChannelParam param);

    int loadChannelConfigCount(@Param("plateId") String plateId);

    ChannelOtherConfigData loadChannelOtherConfig(@Param("plateId") String plateId);

    int updateChannelOtherConfig(ChannelOtherConfigData param);

    List<ChannelLevel> findAllChannelLevel();

    List<ChannelLevel> findChannelDictionaryByChannelValues(@Param("privilegeCodes") List<String> privilegeCodes);

    HeaderConfig loadChannelHeaderConfig(@Param("plateId") String plateId);

    Channel getChannelByPlateId(@Param("plateId") String plateId);

    Channel loadChannelByPlate(@Param("plateId") String plateId);

    Channel loadChannelByArticle(@Param("articleId") String articleId);

    List<Channel> listChannelByChannelType(@Param("channelType") Integer channelType);

    List<Channel> listChannelByChannelValues(@Param("channelValues") List<String> channelValues);

    List<Channel> selectChannelBySuperIdAndChannelType(@Param("superId") String superId, @Param("channelType") Integer channelType);

    List<ChannelMobile> loadChannelMobileList();

    Channel loadChannelByChild(@Param("plateId") String plateId);

    List<DictionaryList> loadChannelList(@Param("superId") String superId);

    List<DictionaryList> loadChannelList2(@Param("superId") String superId);

    Channel loadChannelByPlateStr(@Param("plateId") String plateId);

    List<ChannelTdkVO> findChannelByChannelValues(@Param("plateIds") List<String> plateIds);

    ChannelTdkVO findChannelByChannelValue(@Param("plateId") String plateId);

    List<ChannelMenuMobile> loadChannelProfessionMenu(@Param("min") Integer min, @Param("max") Integer max);

    List<DictionaryList> loadSubstation();

    List<DictionaryList> findChannelByChannelType(@Param("plateType") Integer plateType);
}
